<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title>Crafting Interpreters</title>
<!-- Tell mobile browsers we're optimized for them and they don't need to crop
     the viewport. -->
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" type="text/css" href="index.css" />

<!-- Oh, God, Source Code Pro is so beautiful it makes me want to cry. -->
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400|Source+Sans+Pro:300,400,600' rel='stylesheet' type='text/css'>
<link rel="icon" type="image/png" href="image/favicon.png" />

<!-- Google analytics -->
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-42804721-2', 'auto');
  ga('send', 'pageview');
</script>

</head>
<body>

<article>

<header>
  <a href="dedication.html"><img class="header big" src="image/header.png" alt="Crafting Interpreters by Robert Nystrom" /><img class="header small" src="image/header-small.png" alt="Crafting Interpreters by Robert Nystrom" /></a>
</header>

<main>

<div class="intro">

<blockquote><p>Ever wanted to make your own programming language or wondered how
they are designed and built?</p><p>If so, this book is for you.</p></blockquote>

<div class="text">

<p><em>Crafting Interpreters</em> contains everything you need to implement a
full-featured, efficient scripting language. You&#8217;ll learn both high-level
concepts around parsing and semantics and gritty details like bytecode
representation and garbage collection. Your brain will light up with new ideas,
and your hands will get dirty and calloused. It&#8217;s a blast.</p>

<p>Starting from <code>main()</code>, you build a language that features rich
syntax, dynamic typing, garbage collection, lexical scope, first-class
functions, closures, classes, and inheritance. All packed into a few thousand
lines of clean, fast code that you thoroughly understand because you write each
one yourself.</p>

<p>The book is available in four delectable formats:</p>

</div>

</div>

<div class="format print">
  <div class="format-info">
    <h3>Print</h3>
    <p>640 pages of beautiful typography and high resolution hand-drawn
    illustrations. Each page lovingly typeset by the author. The premiere reading
    experience.</p>
    <table>
    <tr>
    <td>
      <a class="action" href="https://www.amazon.com/dp/0990582930" target="_blank">Amazon<small>.com</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.ca/dp/0990582930" target="_blank"><small>.ca</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.co.uk/dp/0990582930" target="_blank"><small>.uk</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.com.au/dp/0990582930" target="_blank"><small>.au</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.de/dp/0990582930" target="_blank"><small>.de</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.fr/dp/0990582930" target="_blank"><small>.fr</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.es/dp/0990582930" target="_blank"><small>.es</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.it/dp/0990582930" target="_blank"><small>.it</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.co.jp/dp/0990582930" target="_blank"><small>.jp</small></a>
    </td>
    </tr>
    </table>
    <table>
    <tr>
    <td>
      <a class="action" href="https://www.barnesandnoble.com/w/crafting-interpreters-robert-nystrom/1139915245?ean=9780990582939" target="_blank">Barnes and Noble</a>
    </td>
    <td>
      <a class="action" href="https://www.bookdepository.com/Crafting-Interpreters-Robert-Nystrom/9780990582939" target="_blank">Book Depository</a>
    </td>
    </tr>
    </table>
    <a class="action" href="/sample.pdf" target="_blank">Download Sample <small>PDF</small></a>
  </div>
</div>
<div class="format ebook">
  <div class="format-info">
    <h3>eBook</h3>
    <p>Carefully tuned CSS fits itself to your ebook reader and screen size.
    Full-color syntax highlighting and live hyperlinks. Like Alan Kay's Dynabook
    but real.</p>
    <table>
    <tr>
    <td>
      <a class="action" href="https://www.amazon.com/dp/B09BCCVLCL" target="_blank">Kindle <small class="hide-small"><span class="hide-medium">Amazon</span>.com</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.co.uk/dp/B09BCCVLCL" target="_blank"><small>.uk</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.ca/dp/B09BCCVLCL" target="_blank"><small>.ca</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.com.au/dp/B09BCCVLCL" target="_blank"><small>.au</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.de/dp/B09BCCVLCL" target="_blank"><small>.de</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.in/dp/B09BCCVLCL" target="_blank"><small>.in</small></a>
    </td>
    </tr>
    </table>
    <table>
    <tr>
    <td>
      <a class="action" href="https://www.amazon.fr/dp/B09BCCVLCL" target="_blank"><small>.fr</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.es/dp/B09BCCVLCL" target="_blank"><small>.es</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.it/dp/B09BCCVLCL" target="_blank"><small>.it</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.co.jp/dp/B09BCCVLCL" target="_blank"><small>.jp</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.com.br/dp/B09BCCVLCL" target="_blank"><small>.br</small></a>
    </td>
    <td>
      <a class="action" href="https://www.amazon.com.mx/dp/B09BCCVLCL" target="_blank"><small>.mx</small></a>
    </td>
    <td>
      <a class="action" href="https://books.apple.com/us/book/crafting-interpreters/id1578795812" target="_blank">Apple Books</a>
    </td>
    </tr>
    </table>
    <table>
    <tr>
    <td>
      <a class="action" href="https://play.google.com/store/books/details?id=q0c6EAAAQBAJ" target="_blank">Play Books <small class="hide-small">Google</small></a>
    </td>
    <td>
      <a class="action" href="https://www.barnesandnoble.com/w/crafting-interpreters-robert-nystrom/1139915245?ean=2940164977092" target="_blank">Nook <small class="hide-small">B&amp;N</small></a>
    </td>
    <td>
      <a class="action" href="https://www.smashwords.com/books/view/1096463" target="_blank">EPUB <small class="hide-small">Smashwords</small></a>
    </td>
    </tr>
    </table>
  </div>
</div>
<div class="format pdf">
  <div class="format-info">
    <h3>PDF</h3>
    <p>Perfectly mirrors the hand-crafted typesetting and sharp illustrations of
    the print book, but much easier to carry around.</p>
    <a class="action" href="https://payhip.com/b/F0zkr" target="_blank">Buy from Payhip</a>
    <a class="action" href="/sample.pdf" target="_blank">Download Free Sample</a>
  </div>
</div>
<div class="format web">
  <div class="format-info">
    <h3>Web</h3>
    <p>Meticulous responsive design looks great from your desktop down to your
    phone. Every chapter, aside, and illustration is there. Read the whole book
    for free. Really.</p>
    <a class="action" href="contents.html">Read Now</a>
  </div>
</div>

<img src="image/dogshot.jpg" class="author" />

<div class="author">
<h3>About Robert Nystrom</h3>

<p>I got bitten by the language bug years ago while on paternity leave between
midnight feedings. I cobbled together a <a href="http://wren.io/"
target="_blank">number</a> <a href="http://magpie-lang.org/"
target="_blank">of</a> <a href="http://finch.stuffwithstuff.com/"
target="_blank">hobby</a> <a href="https://github.com/munificent/vigil"
target="_blank">languages</a> before worming my way into an honest-to-God,
full-time programming language job. Today, I work at Google on the <a
href="http://dart.dev/" target="_blank">Dart language</a>.</p>

<p>Before I fell in love with languages, I developed games at Electronic Arts
for eight years. I wrote the best-selling book <em><a
href="http://gameprogrammingpatterns.com/" target="_blank">Game Programming
Patterns</a></em> based on what I learned there. You can read that book for free
too.</p>

<p>If you want more, you can find me on Twitter (<a
href="https://twitter.com/intent/user?screen_name=munificentbob"
target="_blank"><code>@munificentbob</code></a>), email me at <code>bob</code>
at this site's domain (though I am slow to respond), read <a
href="http://journal.stuffwithstuff.com/" target="_blank">my blog</a>, or join
my low frequency mailing list:</p>

<div class="sign-up">
  <!-- Begin MailChimp Signup Form -->
  <div id="mc_embed_signup">
  <form action="//gameprogrammingpatterns.us7.list-manage.com/subscribe/post?u=0952ca43ed2536d6717766b88&amp;id=6e96334109" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
    <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="Your email address" required>
    <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups -->
    <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_0952ca43ed2536d6717766b88_6e96334109" tabindex="-1" value=""></div>
    <input type="submit" value="Sign me up!" name="subscribe" id="mc-embedded-subscribe" class="button">
  </form>
  </div>
  <!--End mc_embed_signup -->
</div>

</div>

<footer>
Handcrafted by Robert Nystrom&ensp;&mdash;&ensp;<a href="https://github.com/munificent/craftinginterpreters/blob/master/LICENSE" target="_blank">&copy; 2015&hairsp;&ndash;&hairsp;2021</a>
</footer>
</main>
</article>
</body>
</html>
